package base

type (
	// IConsumer 消息队列消费者模块
	IConsumer interface {
		IComponent

		Topic() string            // 消费的主题
		Group() string            // 消费者组名称
		Handle() any              // 消费处理器
		IsCheckDuplication() bool // 是否检查重复消费
		IsMutex() bool            // 是否互斥消费

		placeholderConsumer()
	}

	// Consumer IConsumer的基础实现
	Consumer struct {
		Component
	}
)

func (c *Consumer) Topic() string {
	return "default"
}

func (c *Consumer) Group() string {
	return "default"
}

func (c *Consumer) Handle() any {
	return nil
}

func (c *Consumer) IsCheckDuplication() bool {
	return true
}

func (c *Consumer) IsMutex() bool {
	return true
}

func (c *Consumer) placeholderConsumer() {}
